

package com.hexinfo.dmpro.dev.data.transfer.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hexinfo.dmpro.common.base.PageResult;
import com.hexinfo.dmpro.data.transfer.common.model.SourceRuleTableView;
import com.hexinfo.dmpro.dev.data.transfer.model.DevDataExportList;
import com.hexinfo.dmpro.dev.data.transfer.model.DevDataExportTask;

import java.util.List;

/**
 * 表导出任务集合表
 *
 * @author yyh.huang
 * @date 2023-10-25 19:17:01
 */
public interface IDevDataExportListService extends IService<DevDataExportList> {

    PageResult queryList(Page page, DevDataExportList devDataExportList);

    List<DevDataExportList> queryListByTaskCode(String taskCode);

    void updateStatus(DevDataExportList devDataExportList);

    void restart(List<String> ids);

    void restart(String id);

    int updateByRestart(String id);

    void buildExportTaskList(DevDataExportTask devDataExportTask, SourceRuleTableView sourceRuleTableView);

    /**
     * @Method download
     * @Description 开发数据导出表清单下载
     * @Author gxd
     * @return String
     * @Date 2024/1/4 11:57
     **/
    String download(DevDataExportList devDataExportList);

    /**
     * @Method removeByTaskCode
     * @Param
     * @param taskCode
     * @Return void
     * @Description 根据taskCode删除任务清单
     * @Author Wang zhihao
     * @Date 2024/1/11 18:10
     * @Version V1.0
     */
    void removeByTaskCode(String taskCode);

    /**
     * @Method logicRemoveByTaskCode
     * @Param
     * @param taskCode
     * @Return void
     * @Description (逻辑删)根据taskCode删除任务清单
     * @Author Wang zhihao
     * @Date 2024/1/15 11:13
     * @Version V1.0
     */
    void logicRemoveByTaskCode(String taskCode);

    /**
     * @Method abolishByTaskCode
     * @Param
     * @param taskCode
     * @Return void
     * @Description 根据taskCode中止任务清单
     * @Author Wang zhihao
     * @Date 2024/1/19 11:26
     * @Version V1.0
     */
    void abolishByTaskCode(String taskCode);
}
